/* 
 * File:   FileWriter.h
 * Author: Guilherme Monteiro
 *
 */

#ifndef FILEWRITER_H
#define	FILEWRITER_H

#include <cv.h>
#include <cxcore.h>
#include <highgui.h>

#include "MetaInfo.h"
#include "File.h"
#include "GenericAdapter.h"
#include "ROI.h"
#include "FilterLines.h"
#include "Cell.h"
#include "TranscriberMetaInfo.h"

using namespace std;

/**
 * Class that represents a writer, it's
 * writes the data in output files.
 * 
 * @author Guilherme Monteiro
 * 
 */
class FileWriter {
public:
    FileWriter(string outputFilePath);
    FileWriter(const FileWriter& orig);
    virtual ~FileWriter();
    void writeCells(vector<Cell> cells);
    void writeHeader1(CvPoint leftUpper, CvPoint rightBottom);
    void writeHeaderN(CvPoint leftUpper, CvPoint rightBottom);
private:
    string outputFilePath;
    
    bool contains(vector<Cell> vCells, Cell cell);
};

#endif	/* FILEWRITER_H */